﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using orienta.Models;

namespace orienta.Controllers
{ 
    public class DetSolicitudController : Controller
    {
        private GoodTireEntities db = new GoodTireEntities();

        //
        // GET: /DetSolicitud/

        public ViewResult Index()
        {

            decimal nAnnSolicitud = Int32.Parse(Request["nAnnSolicitud"]);
            decimal nIdeDep = Int32.Parse(Request["nIdeDep"]);
            decimal nNumCorrelativo = Int32.Parse(Request["nNumCorrelativo"]);
            decimal nIdeClaseSolicitud = Int32.Parse(Request["nIdeClaseSolicitud"]);
            ORIMaeSolicitud orimaesolicitud = null;
            try
            {
                orimaesolicitud = db.ORIMaeSolicitud.Single(o => o.nIdeClaseSolicitud == nIdeClaseSolicitud && o.nAnnSolicitud == nAnnSolicitud && o.nIdeDep == nIdeDep && o.nNumCorrelativo == nNumCorrelativo);

                decimal i = orimaesolicitud.nIdeSolicitud;

                var oridetsolicitud = db.ORIDetSolicitud.Where(o => o.nIdeSolicitud == i).Include("ORIDetCompendio").Include("ORIDetCompendio1").Include("ORIDetCompendio2").Include("ORIDetCompendio3").Include("ORIMaeUsuario").Include("ORIMaeSolicitud");
                return View(oridetsolicitud.ToList());

            }
            catch (Exception)
            {

            }

            return View();

           
        }

        //
        // GET: /DetSolicitud/Details/5

        public ViewResult Details(decimal id)
        {
            ORIDetSolicitud oridetsolicitud = db.ORIDetSolicitud.Single(o => o.nIdeSolicitud == id);
            return View(oridetsolicitud);
        }

        //
        // GET: /DetSolicitud/Create

        public ActionResult Create()
        {
            ViewBag.nIdeEstado = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento");
            ViewBag.nIdePrioridad = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento");
            ViewBag.nIdeTipoDoc = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento");
            ViewBag.nIdePeriodo = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento");
            ViewBag.nIdUsuReg = new SelectList(db.ORIDetCompendio, "nIdUsu", "vCodUsuario");
            ViewBag.nIdeSolicitud = new SelectList(db.ORIMaeSolicitud, "nIdeSolicitud", "vSumilla");
            return View();
        } 

        //
        // POST: /DetSolicitud/Create

        [HttpPost]
        public ActionResult Create(ORIDetSolicitud oridetsolicitud)
        {
            if (ModelState.IsValid)
            {
                db.ORIDetSolicitud.AddObject(oridetsolicitud);
                db.SaveChanges();
                return RedirectToAction("Index");  
            }

            ViewBag.nIdeEstado = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdeEstado);
            ViewBag.nIdePrioridad = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdePrioridad);
            ViewBag.nIdeTipoDoc = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdeTipoDoc);
            ViewBag.nIdePeriodo = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdePeriodo);
            ViewBag.nIdUsuReg = new SelectList(db.ORIMaeUsuario, "nIdUsu", "vCodUsuario", oridetsolicitud.nIdeUsuReg);
            ViewBag.nIdeSolicitud = new SelectList(db.ORIMaeSolicitud, "nIdeSolicitud", "vSumilla", oridetsolicitud.nIdeSolicitud);
            return View(oridetsolicitud);
        }
        
        //
        // GET: /DetSolicitud/Edit/5
 
        public ActionResult Edit(decimal id)
        {
            ORIDetSolicitud oridetsolicitud = db.ORIDetSolicitud.Single(o => o.nIdeSolicitud == id);
            ViewBag.nIdeEstado = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdeEstado);
            ViewBag.nIdePrioridad = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdePrioridad);
            ViewBag.nIdeTipoDoc = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdeTipoDoc);
            ViewBag.nIdePeriodo = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdePeriodo);
            ViewBag.nIdUsuReg = new SelectList(db.ORIMaeUsuario, "nIdUsu", "vCodUsuario", oridetsolicitud.nIdeUsuReg);
            ViewBag.nIdeSolicitud = new SelectList(db.ORIMaeSolicitud, "nIdeSolicitud", "vSumilla", oridetsolicitud.nIdeSolicitud);
            return View(oridetsolicitud);
        }

        //
        // POST: /DetSolicitud/Edit/5

        [HttpPost]
        public ActionResult Edit(ORIDetSolicitud oridetsolicitud)
        {
            if (ModelState.IsValid)
            {
                db.ORIDetSolicitud.Attach(oridetsolicitud);
                db.ObjectStateManager.ChangeObjectState(oridetsolicitud, EntityState.Modified);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            ViewBag.nIdeEstado = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdeEstado);
            ViewBag.nIdePrioridad = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdePrioridad);
            ViewBag.nIdeTipoDoc = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdeTipoDoc);
            ViewBag.nIdePeriodo = new SelectList(db.ORIDetCompendio, "nIdeDetalle", "vCodElemento", oridetsolicitud.nIdePeriodo);
            ViewBag.nIdUsuReg = new SelectList(db.ORIMaeUsuario, "nIdUsu", "vCodUsuario", oridetsolicitud.nIdeUsuReg);
            ViewBag.nIdeSolicitud = new SelectList(db.ORIMaeSolicitud, "nIdeSolicitud", "vSumilla", oridetsolicitud.nIdeSolicitud);
            return View(oridetsolicitud);
        }

        //
        // GET: /DetSolicitud/Delete/5
 
        public ActionResult Delete(decimal id)
        {
            ORIDetSolicitud oridetsolicitud = db.ORIDetSolicitud.Single(o => o.nIdeSolicitud == id);
            return View(oridetsolicitud);
        }

        //
        // POST: /DetSolicitud/Delete/5

        [HttpPost, ActionName("Delete")]
        public ActionResult DeleteConfirmed(decimal id)
        {            
            ORIDetSolicitud oridetsolicitud = db.ORIDetSolicitud.Single(o => o.nIdeSolicitud == id);
            db.ORIDetSolicitud.DeleteObject(oridetsolicitud);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}